<?php
/*
	Copyright 2006-2007 Alex Djachenko http://www.my-site.ru
	Authors: Alex Djachenko
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
/**
 * Хранилище-адаптер (работает с форматами данных, не отображаемыми непосредственно на форматы хранилищь)
 * 
 */
class sharpobj_storage_adapter implements sharpobj_storage_interface
{

	private $format=null;
	private $processor=null;
	// *******************************
	// Служебные функции для внутреннего пользования
	// *******************************
	function __construct(sharpobj_storage_format $format, $opt=null)
	{
	    // Запоминаем формат объекта
		$this->format = $format;
		$this->processor = $opt['processor'];
	}
   /**
     * Вставить запись в базу данных
     *
     * @param sharpobj_data_interface_item $data
     */
    function insert(sharpobj_data_interface_item $data)
    {
        return true;        
    }
    /**
     * Обновить запись с $id
     * Если $emptyreplace == true - пустые записи тоже обновляются
     *
     * @param int $id
     * @param sharpobj_data_interface_item $data
     * @param bool $emptyreplace
     * @param sharpobj_data_interface_item $data
     */
    function update(sharpobj_data_interface_item $data,$id=null,$emptyreplace=false)
    {
        return true;
    }
    /**
     * Удалить запись по ее id
     *
     * @param int $id
     * @return bool
     */
    function delete($id)
    {
        return true;
    }
    /**
     * Получить запись по ее id
     *
     * @param int $id
     * @return bool
     */
    function get($id)
    {
         return $this->format->getObj();
    }
    /**
     * Посчитать количество записей в хранилище
     *
     * @return sharpobj_data_interface_item
     */
    function count()
    {
        return 0;
    }
    function getListAll($from=null,$limit=null)
    {
		// Создаем контейнер для результата
		$result = new sharpobj_data_item_array();
		return $result;
    }	
    /**
     * Вернуть объект формата
     * @return sharpobj_data_interface_item
     */
    function getObj($datapath=null)
    {
		return $this->format->getObj($datapath);
    }
}
?>